Physical object for intuitive navigation in a three-dimensional space

ABSTRACT

A computer-implemented method for manipulating graphics objects within a display viewed by an end-user is disclosed. The method involves: receiving motion information generated in response to the end-user moving an object that is external to the display; determining at least one zone of motion in which the end-user moves the object; determining a first motion type associated with the movement of the object within the at least one zone of motion; and based on the at least one zone of motion and the first motion type, determining at least one change to a viewpoint associated with one or more graphics objects displayed to the end-user within the display. The at least one change to the viewpoint causes an alteration in how the one or more graphics objects are displayed to the end-user within the display.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of the co-pending U.S. patentapplication titled, “PHYSICAL OBJECT FOR INTUITIVE NAVIGATION IN ATHREE-DIMENSIONAL SPACE,” filed on Apr. 8, 2011 and having Ser. No.13/083,435. The subject matter of this related application is herebyincorporated herein by reference.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates generally to navigating athree-dimensional space and, more specifically, to a physical object forintuitive navigation in a three-dimensional space.

Description of the Related Art

Several different techniques for manipulating the viewpoints needed toview one or more three-dimensional (3D) graphics objects displayed to anend-user within a display are known in the art. For example, in oneimplementation, an end-user may employ the drag-and-drop function of amouse to rotate a viewpoint within the display. Here, the end-userclicks arrows provided on the screen to zoom or pan the viewpoint. Inanother implementation, a virtual cube may be presented to the end-userin a corner of the display. To rotate the viewpoint, the end-useremploys the mouse to rotate the virtual cube. Other implementationssimilarly involve a user employing a mouse, keyboard and/or touch screento enter commands to manipulate viewpoints used to view the graphicsobjects within the display.

One drawback of these different approaches to manipulating theviewpoints of graphics objects within a display is that the approachesare not intuitive to the end-user. As a consequence, the end-user mustinvest an excessive amount of time into thinking and planning the stepsthat she would take to manipulate the 3D space to reach her desiredfinal viewpoint and/or final graphics object state. In addition,manipulating the viewpoint in an indirect fashion using a mouse andkeyboard is oftentimes cumbersome and frustrating to the end-user.

As the foregoing illustrates, what is needed in the art is a moreintuitive way for end-users to manipulate and view graphics objectswithin a display.

SUMMARY OF THE INVENTION

One embodiment of the present invention sets forth a method formanipulating graphics objects within a display viewed by an end-user.The method includes the steps of: receiving motion information generatedin response to the end-user moving an object that is external to thedisplay; determining at least one zone of motion in which the end-usermoves the object; determining a first motion type associated with themovement of the object within the at least one zone of motion; and basedon the at least one zone of motion and the first motion type,determining at least one change to a viewpoint associated with one ormore graphics objects displayed to the end-user within the display. Theat least one change to the viewpoint causes an alteration in how the oneor more graphics objects are displayed to the end-user within thedisplay.

One advantage of the disclosed method is that the method provides a moreintuitive technique for navigating within a 3D space on a screen.Specifically, the method provides intuitive techniques for the end-userto rotate, translate or zoom into or out of one or more graphics objectswithin a display.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments:

FIG. 1 illustrates a computer system configured to implement one or moreaspects of the present invention;

FIG. 2 is a more detailed illustration of logic implemented by thecomputer system of FIG. 1, according to one embodiment of the presentinvention;

FIG. 3 is a flow diagram of method steps for manipulating one or moregraphics objects within a display, according to one embodiment of thepresent invention; and

FIG. 4 is a table illustrating changes that may be made to theviewpoints of one or more graphics objects within a display based on thetype of motion of an object external to the display within a particulartype of zone of motion, according to one embodiment of the presentinvention.

DETAILED DESCRIPTION

FIG. 1 illustrates a computer system 100 configured to implement one ormore aspects of the present invention, according to one embodiment. Asshown, the computer system 100 includes a memory 102, a mouse 110, akeyboard 120, a display 130, a camera 140, and an object 150 external tothe display within one zone of motion 155 of a plurality of zones ofmotion 151-159.

The memory 102 is configured to store software programs that run oncomputer system 100. A more detailed description of the function ofvarious systems stored in the memory 102 is provided in conjunction withFIG. 2 below.

The mouse 110 is configured to allow the end-user to navigate across atwo-dimensional display screen such as display 130. The mouse isconnected to the main body of computer system 100 by a wired or wirelessconnection. In another embodiment (not illustrated), a touch screendevice may replace the functionality of the mouse.

The keyboard 120 is configured to allow the end-user to press keys andto type data into the computer system 100. The keyboard is connectedwith the main body of computer system 100 via a wired or wirelessconnection. In another embodiment (not illustrated), the keyboard may bedisplayed on the screen.

The display 130 is configured to display data to the user. The displayis also connected to the main body of the computer system 100 via awired or wireless connection. In one embodiment, the display is acomputer monitor or screen. The display could be a plasma display, aliquid crystal display (LCD) or any other type of display that is knownin the art.

The camera 140 is also connected with the main body of computer system100 via a wired or wireless connection. The camera 140 is configured toreceive image or light data external to the computer system 100 andprovide the image or light data to memory 102 for further processing.One skilled in the art would appreciate that the camera 140 could be awebcam or a photo/video camera.

The object 150 external to the display 130 is configured to be viewed bythe camera. In one embodiment, object 150 external to the display is ahand-held cube having a size and weight that is suitable for manualrotation by an end-user. However, those skilled in the art wouldappreciate that an object of any shape and size could be used toimplement the techniques described herein. In one embodiment, the object150 is a cube, and each face of the cube includes a distinct visual markor pattern, such that an image of each face generated by camera 140could be recognized by a software program running in memory 102.

According to one embodiment, the object 150 is located within one of aplurality of zones of motion 151-159. Each zone of motion specifies anexpected type of motion in which the object 150 may be engaged whenlocated in the zone 151-159. Several exemplary zones of motion arediscussed in conjunction with FIG. 4 below.

FIG. 2 illustrates the memory 102 of the computer system 100 in moredetail, according to one embodiment. As shown, the memory 102 includes acamera module 210, a display control engine 220, a software application230, and a display engine 240.

The camera module 210 receives video data from camera 140. The camera210 then provides this video data to the display control engine 220 forfurther processing. In one embodiment, the camera module is a driver forthe camera.

The display control engine 220 receives the video data from the cameramodule 210. The display control engine 220 then identifies an object inthe video data as the object 150 for controlling the display. Thedisplay control engine 220 then determines a zone of motion 222 and anobject movement 224 of the object 150. The zone of motion 222 representsone of zones 151-159 of FIG. 1, which could correspond to various typesof zones, such as a zone of rotation, a panning zone, a zooming zone, aresting zone, or a zone associated with any other type of movement thatis known in the art. The object movement 224 could be, withoutlimitation, a rotation of the object 150, a translation of the object150 in a first direction, a translation of the object 150 toward or awayfrom a first position or any other type of movement known in the art.Optionally, one zone, such as zone 155, is designated as a resting zone,and movements of the object 150 within the resting zone are ignored. Thedisplay control engine 220 then calculates a change to a viewpoint for agraphics object that is being displayed in display 130 based on the zoneof motion 222 and the object movement 224. Exemplary correspondencesbetween the zone of motion 222, object movement 224, and change toviewpoint 226 are discussed in greater detail below in conjunction withFIG. 4.

The change to the viewpoint 226 is provided to a software application230. Software application 230 then adjusts the information to bepresented on the display 130 and provides the adjusted information todisplay engine 240. One skilled in the art would appreciate thatsoftware application 230 could be a computer-aided design (CAD)application, a 3D image viewing application, a video gaming applicationor any other type of application that presents images to an end-user. Inone embodiment, the software application 230 is a general purposeapplication, such as a web browser. In another embodiment (notillustrated) the display control engine 220 is a part of the softwareapplication 230.

The display engine 240 receives data from the software application 230and serves to modify the data presented on the display 130. In oneembodiment, the display engine 240 is a driver for a computer monitor.

FIG. 3 is a flow diagram of method steps for manipulating graphicsobjects within the display viewed by the end-user, according to oneembodiment. Although the method steps are described in conjunction withFIGS. 1-2, persons skilled in the art would understand that any systemconfigured to perform the method steps, in any order, falls within thescope of the present invention.

The method 300 begins at step 310, where the display control engine 220receives motion information generated in response to an end-user movingan object 150 located externally to the display 130. In one embodiment,the motion information is provided to the display control engine 220 bythe camera module 210.

In step 320, the display control engine 220 determines a zone of motion222 associated with the external object 150 based on the motioninformation. In one embodiment, the zone of motion is one of zones151-159.

In step 330, the display control engine 220 determines a motion typeassociated with the external object 150 based on the motion information.In one embodiment, the motion type is an object movement 224. Oneskilled in the art would understand that the object movement 224 couldbe a rotation of the object, a translation of the object or any othermovement.

In step 340, the display control engine 220 determines a change to aviewpoint 226 associated with one or more graphics objects displayed tothe end-user via the display 130 based on the zone of motion 222 and thefirst motion type (object movement 224). One possible correspondencebetween type of zone, type of motion, and resulting viewpoint change,which may be implemented by display control engine 220, is illustratedin FIG. 4 and described in detail below. However, those skilled in theart would understand that other correspondences between type of zone,type of motion, and resulting viewpoint change also fall within thescope of the invention.

In step 350, the display control engine 220 causes an alteration in howthe one or more graphics objects are displayed to the end-user in thedisplay 130 according to the change to the viewpoint 226. In oneembodiment, the display control engine 220 provides the change to theviewpoint to a software application 230, such as a 3D viewing program ora computer-aided design program, which provides the updated viewing datato the display engine 240. In another embodiment, the display controlengine provides the change in the viewpoint directly to the displayengine 240. The display engine then modifies the view displayed ondisplay 130.

FIG. 4 is a table 400 illustrating changes to the viewpoint determinedbased on the type of zone and the type of motion, according to oneembodiment. While one specific mapping of type of zone and type ofmotion to a resulting viewpoint change is illustrated in FIG. 4, thoseskilled in the art would understand that multiple different mappingsand/or correspondences between type of zone, type of motion, andresulting viewpoint change may be implemented in conjunction with thetechniques described herein. According to one embodiment, the type ofzone is stored in zone of motion 222, the type of motion is stored inobject movement 224, and the resulting viewpoint change is stored inchange to viewpoint 226.

According to the first row of table 400, the type of zone is a zone ofrotation 410, and the type of motion is a rotation of the object 150 ina clockwise direction 412. One skilled in the art would recognize that,according to one embodiment, the zone of rotation 410 corresponds to oneof the zones 151-159 of FIG. 1. The resulting viewpoint change is arotation of the viewpoint in a clockwise direction 414. Alternatively,the type of motion 412 is a rotation of the object 150 in acounterclockwise direction and the resulting viewpoint change is arotation of the viewpoint in a counterclockwise direction 414.

According to the second row of table 400, the type of zone is a panningzone 420, and the type of motion is a translation of the object 150 in afirst direction 422. One skilled in the art would recognize that,according to one embodiment, the panning zone 420 corresponds to one ofthe zones 151-159 of FIG. 1. The resulting viewpoint change is atranslation of the viewpoint in a direction corresponding to the firstdirection 424. For example, if the object 150 is translated to theright, the viewpoint of the one or more graphics objects presented ondisplay 130 would also be translated to the right.

According to the third row of table 400, the type of zone is a zoomingzone 430, and the type of motion is a translation of the object 150toward a first position 432. One skilled in the art would recognizethat, according to one embodiment, the zooming zone 430 corresponds toone of the zones 151-159 of FIG. 1. According to one embodiment, thefirst position is either a position of the camera or an expectedposition of the end-user. However, those skilled in the art wouldimmediately realize that other first positions may be used inconjunction with the techniques described herein. The resultingviewpoint change is a zooming into the one or more graphics objects 434.Alternatively, the type of motion is a translation of the object 150away from the first position 432, and the resulting viewpoint change isa zooming out of the one or more graphics object 434.

According to the fourth row of table 400, the type of zone is a restingzone 440, and the type of motion is any movement 442. There is noresulting viewpoint change 444, as all movements of the object 150within the resting zone are ignored. One skilled in the art wouldunderstand that one purpose of the resting zone 440 is to allow theend-user to pick up and put down the object 150 without worrying aboutwhat effect this particular action would have on the viewpoint. Oneskilled in the art would recognize that, according to one embodiment,the resting zone 440 corresponds to one of the zones 151-159 of FIG. 1.In one embodiment, the resting zone includes a default resting place forobject 150.

In sum, the disclosed approach provides a more user-friendly andintuitive way to manipulate graphics objects or viewpoints presented toan end-user within a display. More specifically, the approach applies toa display control engine that receives motion information generated inresponse to the end-user moving an external object from a camera module.The display control engine then determines a zone of motion associatedwith the external object and a first movement associated with theexternal object. Next, the display control engine determines a change toa viewpoint associated with a graphics object displayed to the end-userwithin the display based on the zone of motion and the first movement.The display control engine transmits this change to the viewpoint to asoftware application, which transmits the change to a viewpoint to adisplay engine. Finally, the display engine alters how the graphicsobject is displayed to the end-user according to the change to theviewpoint. In one embodiment, the zone of motion is a zone of rotation,the first movement is a rotation of the external object, and thedetermined change to the viewpoint is a change to the viewpoint. Inanother embodiment, the zone of motion is a zone of panning, the firstmovement is a panning of the external object, and the determined changeto the viewpoint is a panning of the viewpoint. In yet anotherembodiment, the zone of motion is a zone of zooming, the first movementis a translation of the external object toward or away from a firstposition, and the determined change to the viewpoint is a zooming intoor out from the graphics object.

One advantage of the disclosed approach is that an end-user can moreeasily and intuitively manipulate graphics objects within a display. Inparticular, the user can more easily zoom, pan, and rotate a viewpointwithin the display. As a result, the end-user is able to save mentalenergy that would have been focused on manipulating the viewpoint and isinstead able to focus on other tasks.

While the forgoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof. For example, aspects of thepresent invention may be implemented in hardware or software or in acombination of hardware and software. One embodiment of the inventionmay be implemented as a program product for use with a computer system.The program(s) of the program product define functions of theembodiments (including the methods described herein) and can becontained on a variety of computer-readable storage media. Illustrativecomputer-readable storage media include, but are not limited to: (i)non-writable storage media (e.g., read-only memory devices within acomputer such as CD-ROM disks readable by a CD-ROM drive, flash memory,ROM chips or any type of solid-state non-volatile semiconductor memory)on which information is permanently stored; and (ii) writable storagemedia (e.g., floppy disks within a diskette drive or hard-disk drive orany type of solid-state random-access semiconductor memory) on whichalterable information is stored. Such computer-readable storage media,when carrying computer-readable instructions that direct the functionsof the present invention, are embodiments of the present invention.

While the forgoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof. For example, aspects of thepresent invention may be implemented in hardware or software or in acombination of hardware and software. One embodiment of the inventionmay be implemented as a program product for use with a computer system.The program(s) of the program product define functions of theembodiments (including the methods described herein) and can becontained on a variety of computer-readable storage media. Illustrativecomputer-readable storage media include, but are not limited to: (i)non-writable storage media (e.g., read-only memory devices within acomputer such as CD-ROM disks readable by a CD-ROM drive, flash memory,ROM chips or any type of solid-state non-volatile semiconductor memory)on which information is permanently stored; and (ii) writable storagemedia (e.g., floppy disks within a diskette drive or hard-disk drive orany type of solid-state random-access semiconductor memory) on whichalterable information is stored. Such computer-readable storage media,when carrying computer-readable instructions that direct the functionsof the present invention, are embodiments of the present invention.

The scope of the present invention is determined by the claims thatfollow.

What is claimed is:
 1. A method implemented by a computer system formanipulating graphics objects within a display of the computer systemviewed by an end-user, the method comprising: capturing motion dataassociated with the end-user moving an inanimate object within aplurality of zones of motion, wherein the inanimate object is externalto the display and is not an element of the computer system; determininga zone of motion in the plurality of zones of motion in which theend-user moves the inanimate object; determining a first motion typeassociated with the movement of the inanimate object within the zone ofmotion; and based on the zone of motion and the first motion type,determining at least one change to a viewpoint associated with one ormore graphics objects displayed to the end-user within the display,wherein the at least one change to the viewpoint causes an alteration inhow the one or more graphics objects are displayed to the end-userwithin the display.
 2. The method of claim 1, further comprisingtransmitting the at least one change to the viewpoint to a softwareapplication that generates the one or more graphics objects displayedwithin the display.
 3. The method of claim 1, further comprisingtransmitting the at least one change to the viewpoint to a displayengine configured to manage how the one or more graphics objects aredisplayed within the display.
 4. The method of claim 1, wherein theinanimate object external to the display comprises a hand-held cube. 5.The method of claim 4, wherein at least one face of the hand-held cubeincludes a distinct visual mark that identifies the at least one face ofthe hand-held cube and enables the first motion type associated with themovement of the cube within the at least one zone of motion to bedetermined.
 6. The method of claim 1, wherein the at least one zonecomprises a zone of rotation, the first motion type corresponds to arotation of the inanimate object external to the display within the zoneof rotation, and the at least one change to the viewpoint comprises arotation of the viewpoint relative to the one or more graphics objects.7. The method of claim 1, wherein the at least one zone comprises apanning zone, the first motion type corresponds to a translation of theinanimate object external to the display within the panning zone in afirst direction relative to a first position, and the at least onechange to the viewpoint comprises a translation of the viewpoint in adirection corresponding to the first direction relative to the one ormore graphics objects.
 8. The method of claim 1, wherein the at leastone zone comprises a zooming zone, the first motion type corresponds toa translation of the inanimate object external to the display within thezooming zone toward or away from a first position, and the at least onechange to the viewpoint comprises a zoom into or a zoom out from the oneor more graphics objects.
 9. A non-transitory computer-readable mediumstoring instructions that, when executed by a processor within acomputer system, cause the processor to manipulate graphics objectswithin a display of the computer system viewed by an end-user, byperforming the steps of: capturing motion data associated with theend-user moving an inanimate object, wherein the inanimate object isexternal to the display and is not an element of the computer system;determining a first motion type associated with the movement of theinanimate object; and based on the zone of motion and thc first motiontype, determining at least one change to a viewpoint associated with oneor more graphics objects displayed to the end-user within the display,wherein the at least one change to the viewpoint causes an alteration inhow the one or more graphics objects are displayed to the end-userwithin the display.
 10. The computer-readable medium of claim 9, whereinthe steps further comprise transmitting the at least one change to theviewpoint to a software application that generates the one or moregraphics objects displayed within the display.
 11. The computer-readablemedium of claim 9, wherein the steps further comprise transmitting theat least one change to the viewpoint to a display engine configured tomanage how the one or more graphics objects are displayed within thedisplay.
 12. The computer-readable medium of claim 9, wherein theinanimate object external to the display comprises a hand-held cube. 13.The computer-readable medium of claim 9, wherein at least one face ofthe hand-held cube includes a distinct visual mark that identifies theat least one face of the hand-held cube and enables the first motiontype associated with the movement of the cube within the at least onezone of motion to be determined.
 14. The computer-readable medium ofclaim 9, wherein the at least one zone comprises a zone of rotation, thefirst motion type corresponds to a rotation of the inanimate objectexternal to the display within the zone of rotation, and the at leastone change to the viewpoint comprises a rotation of the viewpointrelative to the one or more graphics objects.
 15. The computer-readablemedium of claim 9, wherein the at least one zone comprises a panningzone, the first motion type corresponds to a translation of theinanimate object external to the display within the panning zone in afirst direction relative to a first position, and the at least onechange to the viewpoint comprises a translation of the viewpoint in adirection corresponding to the first direction relative to the one ormore graphics objects.
 16. The computer-readable medium of claim 9,wherein the at least one zone comprises a zooming zone, the first motiontype corresponds to a translation of the inanimate object external tothe display within the zooming zone toward or away from a firstposition, and the at least one change to the viewpoint comprises a zoominto or a zoom out from the one or more graphics objects.
 17. A systemcomprising: a computer system configured to: capture motion dataassociated with the end-user moving an inanimate object within aplurality of zones of motion, wherein the inanimate object is externalto a display of the computer system and is not an element of thecomputer system; determine a zone of motion in the plurality of zones ofmotion in which the end-user moves the inanimate object; determine afirst motion type associated with the movement of the inanimate objectwithin the zone of motion; and based on the zone of motion and the firstmotion type, determine at least one change to a viewpoint associatedwith one or more graphics objects displayed to the end-user within thedisplay, wherein the at least one change to the viewpoint causes analteration in how the one or more graphics objects are displayed to theend-user within the display.
 18. The system of claim 17, furthercomprising the inanimate object external to the display that comprises ahand-held cube, wherein at least one face of the hand-held cube includesa distinct visual mark that identifies the at least one face of thehand-held cube.
 19. The system of claim 17, further comprising a cameraconfigured to: capture the motion information related to the end-usermoving the inanimate object that is external to the display; and providethe motion information to the computer system.
 20. The system of claim17, wherein the display is configured to display the one or moregraphics objects from the viewpoint based on the at least one change tothe viewpoint.